package com.charles.springbatch.demo.webtier;

import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 启动项目，访问 http://localhost:8080/hello 地址触发批处理，可以发现 data.csv 中数据已经成功插入 user 表中。
 */
@RestController
public class HelloController {

	// JobLauncher 由框架提供
	@Autowired
	JobLauncher jobLauncher;

	// Job 为刚刚配置的
	@Autowired
	Job job;

	@GetMapping("/hello")
	public void hello() {
		try {
			JobParameters jobParameters = new JobParametersBuilder().toJobParameters();
			// 通过调用 JobLauncher 中的 run 方法启动一个批处理
			jobLauncher.run(job, jobParameters);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}